#ifndef __RFID_H
#define __RFID_H

#include "system.h"

#define RFID_CARD_ID_LENGTH 4

// RFID卡片数据结构
typedef struct {
    uint16_t id;                             // 内部ID
    uint8_t  card_id[RFID_CARD_ID_LENGTH];  // 卡片ID
    uint8_t  privilege;                      // 权限级别
    uint32_t register_time;                  // 注册时间
    bool     valid;                          // 是否有效
} RFIDCardData;

// RFID模块初始化
SystemStatus RFID_Init(void);

// 添加卡片
SystemStatus RFID_Add(const uint8_t *card_id, uint16_t *id);

// 删除卡片
SystemStatus RFID_Delete(uint16_t id);

// 卡片匹配
SystemStatus RFID_Match(const uint8_t *card_id, uint16_t *id);

// 获取已注册卡片数量
uint16_t RFID_GetCount(void);

// 清空所有卡片
SystemStatus RFID_Clear(void);

// RFID模块进入低功耗模式
SystemStatus RFID_EnterLowPower(void);

// RFID模块退出低功耗模式
SystemStatus RFID_ExitLowPower(void);

#endif // __RFID_H 